var flag;
var room_ids=[];
var checkout_room=[];
$(document).ready(function () {
    $('#myDialog').on('hidden.bs.modal', function () {
        clearModelData();
    });

    $("#deleteMoreBtn").click(function () {
        //点击每一行的复选框都会将选中的行添加到数组中
        var rows = $("#data-table").bootstrapTable("getSelections");
        for(var i=0;i<rows.length;i++){
            room_ids[i]=rows[i].room_id;
        }

        alert("=========="+room_ids[0]);
        $("#deleteDialogMsg").html("您确定要删除"+rows.length+"间房间信息吗？");
        $("#myDeleteModal").modal("show");
    })

    $("#deleteBtn").click(function () {
        $.ajax({
            url: "/room/deleteOneRoomfree",
            datatype: "json",
            type: "post",
            data:{
                room_ids:room_ids,
            },
            //序列化,能够传递数组给服务器
            traditional: true,
            success: function(result) {
                var errorCode = result.errorCode;
                console.info("返回值" + errorCode);
                console.info(room_ids);
                if (errorCode == 0) {
                    // 模态框的隐藏
                    $("#myDeleteModal").modal("hide");
                    console.info(room_ids);
                    //刷新页面
                    initTable();
                    toastr.success(result.status);
                }else if(errorCode==-1) {
                    $("#myDeleteModal").modal("hide");
                    toastr.error(result.status);
                }
            }
        });
    });

    $("#updateBtn").click(function () {

        if(flag){
            $.ajax({
                url:"/room/InsertRoomfree",
                datatype:"json",
                type:"post",
                data:{
                    room_id:$("#room_id").val(),
                    room_type:$("#room_type").val(),
                    room_price:$("#room_price").val(),
                    room_state:$("#room_state").val(),
                },
                success:function (result) {
                    alert(result)
                    if(result.errorCode==0){
                        $("#myDialog").modal("hide");
                        initTable();
                        toastr.success(result.status);
                    }else if(result.errorCode==-1){
                        toastr.error(result.status);
                    }else if(result.errorCode==-2){
                        toastr.error(result.status);
                    }else if (result.errorCode==-3){
                        toastr.error(result.status);
                    }
                }
            })
        }else {
            $.ajax({
                url:"/room/updateRoomfree",
                datatype:"josn",
                type:"post",
                data:{
                    room_id:$("#room_id").val(),
                    room_type:$("#room_type").val(),
                    room_price:$("#room_price").val(),
                    room_state:$("#room_state").val(),
                },
                success:function (result) {
                    if(result.errorCode==0){
                        $("#myDialog").modal("hide");
                        initTable();
                        toastr.success(result.status);
                    } else if(result.errorCode==-2){
                        toastr.error(result.status);
                    }else if(result.errorCode==-1){
                        toastr.error(result.status);
                    }
                }
            })
        }
    });

    $("#addBtn").click(function () {
        flag=true;
        showModal();
    })

    //退房申请模态框弹出
    $("#checkOutRoomBtn").click(function () {
        var select = $("#data-table").bootstrapTable("getSelections");
        for(var i=0;i<select.length;i++) {
            checkout_room[i] = select[i].room_id;
        }
            alert("========="+checkout_room[0]);
            $("#CheckOutDialogMsg").html("您确定要退订" + select.length + "间房吗？");
            $("#myCheckOutModal").modal("show");


    });

    $("#CheckOutBtn").click(function () {
        $.ajax({
            url:"/guest/checkOutRoom",
            datetype: "json",
            type:"post",
            data:{
                checkout_room:checkout_room,
            },
            traditional: true,
            success:function (result) {
                alert(result);
                if(result.errorCode==0){
                    $("#myCheckOutModal").modal("hide");
                    initTable();
                    toastr.success(result.status);
                } else {
                    toastr.error(result.status);

                }
            }
        })
    })

    //只要打开模态框就会将下拉列表显示出来
    $.ajax({
        url: "/roomtype/selectAllRoomType",
        type: "post",
        dataType: "json",
        async: false,//设置为同步方法
        success: function (result) {
            console.info(result.errorCode)
            if (result.errorCode == 0) {
                //alert(result.objectList);
                var list = result.objectList;
                var mySelect = $("#room_type");
                console.info(mySelect);
                // for(var i = 0;i<list.length;i++){
                //     html+="<option value='"+list[i].t_id+"'>"+list[i].t_name+"</option>"
                // }
                mySelect.html("请选择房间类型");
                $(list).each(function (index) {
                    html = $("<option></option>").text(list[index].roomtype_name).val(list[index].roomtype_name);
                    $("#room_type").append(html);
                })
            }
            // $("#room_type").selectpicker('refresh');
            // $('#room_type').selectpicker('render');
        }
    });


    //清空模态框数据
    function clearModelData() {
        $("#room_id").val("");
        $("#room_type").val("");
        $("#room_price").val("");
        $("#room_state").val("");
    }

    //得到查询的参数,实现价格查询
    function queryParams(params) {
        var from = $("#priceFrom").val();
        var to = $("#priceTo").val();

        var data = {   //这里的键的名字和控制器的变量名必须一直，这边改动，控制器也需要改成一样的
            priceFrom: from,
            priceTo: to
        };
        return data;
    }
    $("#search").click(function () {
        initTable();
    });
    $("#searchClear").click(function () {
        $("#priceFrom").val("");
        $("#priceTo").val("");
    });

    // 办理入住的提交
    //做办理入住模态框的输入验证
    var form = $('#gotohomeForm');
    form.bootstrapValidator({
        message: '输入值不合法',
        feedbackIcons: {
            valid: 'glyphicon glyphicon-ok',
            invalid: 'glyphicon glyphicon-remove',
            validating: 'glyphicon glyphicon-refresh'
        },
        fields: {
            guest_name: {
                message: '用户名不合法',
                validators: {
                    notEmpty: {
                        message: '用户名不能为空'
                    },
                    stringLength: {
                        min: 2,
                        max: 30,
                        message: '请输入2到30个字符'
                    }//,
                    // regexp: {
                    //     regexp: /^[a-zA-Z0-9_\. \u4e00-\u9fa5 ]+$/,
                    //     message: '用户名只能由字母、数字、点、下划线和汉字组成 '
                    // }
                }
            }
            , guest_idcard: {
                validators: {
                    notEmpty: {
                        message: '身份证不能为空'
                    }
                }
            }, guest_phone: {
                validators: {
                    notEmpty: {
                        message: '手机号不能为空'
                    },
                    regexp: {
                        regexp: "^([0-9]{11})?$",
                        message: '手机号码格式错误'
                    }
                }
            }
        }
    });






    // 办理入住的提交
    $("#ComfirmForgotohome").click(function () {
        var bv=form.data("bootstrapValidator");
        bv.validate();
        if(bv.isValid()){
            console.log(form.serialize());
            $.ajax({
                url: "/guest/insertGuest",
                type: "get",
                async: false,
                dataType: "json",
                //序列化,能够传递数组给服务器
                traditional: true,
                data: {
                    guest_roomid:guest_roomid,
                    guest_name:$("#guest_name").val(),
                    guest_idcard:$("#guest_idcard").val(),
                    guest_phone:$("#guest_phone").val()
                },
                success: function (rs) {
                    var errorCode = rs.errorCode;
                    if (errorCode==0){
                        //模态框成功后消失
                        $("#ModalForgotohome").modal("hide");
                        //删除成功后刷新
                        initTable();
                        //刷新后出一个提示框
                        toastr.success(rs.status);
                    } else {
                        toastr.error(rs.status);
                        $("#ModalForgotohome").modal("hide");

                    }

                }
            })
        }

    });
    // $("#ComfirmForgotohome").click(function () {
    //     $.ajax({
    //         url: "/guest/insertGuest",
    //         type: "get",
    //         dataType: "json",
    //         //序列化,能够传递数组给服务器
    //         traditional: true,
    //         data: {
    //             guest_roomid:guest_roomid,
    //             guest_name:$("#guest_name").val(),
    //             guest_idcard:$("#guest_idcard").val(),
    //             guest_phone:$("#guest_phone").val()
    //         },
    //         success: function (rs) {
    //             var errorCode = rs.errorCode;
    //             console.info("errorCode======="+errorCode)
    //             if (errorCode==0){
    //                 //模态框成功后消失
    //                 $("#ModalForgotohome").modal("hide");
    //                 //删除成功后刷新
    //                 initTable();
    //                 //刷新后出一个提示框
    //                 toastr.success(rs.status);
    //             }else if(errorCode==-2){
    //                 toastr.error(rs.status);
    //             } else {
    //                 toastr.error(rs.status);
    //                 $("#ModalForgotohome").modal("hide");
    //
    //             }
    //
    //         }
    //     })
    // });

    //验证入住信息不能为空
   // $("#guest_name").blur(function () {
   //     var guest_name = $("#guest_name").val();
   //     if(guest_name==""||null){
   //         $("#errorLog1").removeClass("hidden");
   //     }else{
   //         $("#errorLog1").addClass("hidden");
   //     }
   // });
   //  $("#guest_idcard").blur(function () {
   //      var guest_idcard = $("#guest_idcard").val();
   //      if(guest_idcard.length!==18){
   //          $("#errorLog2").text("身份证号不能少于18位");
   //          $("#errorLog2").removeClass("hidden");
   //      }else{
   //          $("#errorLog2").addClass("hidden");
   //      }
   //  });
   //  $("#guest_phone").blur(function () {
   //      var guest_phone = $("#guest_phone").val();
   //      if(guest_phone==""||null){
   //          $("#errorLog3").removeClass("hidden");
   //      }else{
   //          $("#errorLog3").addClass("hidden");
   //      }
   //  });
   //  //清除登记信息的输入框
   //  $('#ModalForgotohome').on('hidden.bs.modal', function () {
   //      $("#guest_name").val("");
   //      $("#guest_idcard").val("");
   //      $("#guest_phone").val("");
   //  });

    initTable();
function initTable() {
    //让bookstraptable销毁
    $("#data-table").bootstrapTable("destroy");
    $("#data-table").bootstrapTable({
        url: "/room/roomfree",
        method: 'post', //请求方式（*）
        toolbar: '#addBtn,#deleteMoreBtn,#checkOutRoomBtn',            //工具按钮用哪个容器
        striped: true, //是否显示行间隔色
        cache: false, //是否使用缓存，默认为true，所以一般情况下需要设置一下这个属性（*）
        pagination: true, //是否显示分页（*）
        sortable: true, //是否启用排序
        sortOrder: "asc", //排序方式
        sidePagination: "client", //分页方式：client客户端分页，server服务端分页（*）
        pageNumber: 1, //初始化加载第一页，默认第一页,并记录
        pageSize: 5, //每页的记录行数（*）
        pageList: [10, 20, 50, 100], //可供选择的每页的行数（*）
        search: true, //是否显示表格搜索,模糊查询
        strictSearch: false,//精确查询
        // silent : true,// 刷新事件必须设置
        showColumns: true, //是否显示所有的列（选择显示的列）
        showRefresh: true, //是否显示刷新按钮
        minimumCountColumns: 2, //最少允许的列数
        clickToSelect: true, //是否启用点击选中行
        //height: 1000,                      //表格高，如果没有设置height属性，表格自动根据记录条数觉得表格高度
        uniqueId: "id", //每一行的唯一标识，一般为主键列
        showToggle: true, //是否显示详细视图和列表视图的切换按钮
        cardView: false, //是否显示详细视图
        detailView: false, //是否显示父子表
        clickToSelect: true,    //是否启用点击选中行
        queryParams: queryParams,
        columns: [

            {
                checkbox: true,

            },
            {
                field: 'room_id',//JSon数据中的相应的key
                title: '房间号',//表头信息
                sortable: true,

                align: 'center',
                valign: 'middle',
            },
            {
                field: 'room_type',
                title: '房间类型',
                sortable: true,

                align: 'center',
                valign: 'middle',

            },
            {
                field: 'room_price',
                title: '房间价格',
                sortable: true,

                align: 'center',
                valign: 'middle',
            },
            {
                field: 'room_state',
                title: '房间状态',

                align: 'center',
                sortable: true,
                valign: 'middle',
            },
            {
                title: '操作',
                // width: 200,
                align: 'center',
                valign: 'middle',
                events: operateEvents,
                formatter: function (value, row, index) {
                    return "<button class='btn btn-info updateRoom'><i class='fa fa-pencil-square-o' aria-hidden='true'></i> 编辑</button> <button class='btn btn-danger deleteRoom'> <i class='fa fa-trash' aria-hidden='true'></i> 删除</button><button class='btn btn-success doCheckIn'><i class='fa fa-key' aria-hidden='true'></i> 登记入住</button>"
                    ;
                }
            }
        ],
        onLoadSuccess: function (res) {
            console.log(res);
            //复选框的居中样式
            $(".bs-checkbox").css({"text-align": 'center', "vertical-align": "middle"});
        }, onLoadError: function (statusCode) {
            return "加载失败了"
        }, formatLoadingMessage: function () {
            //正在加载
            return "拼命加载中...";
        }, formatNoMatches: function () {
            //没有匹配的结果
            return '无符合条件的记录';
        }
    });
}
});



window.operateEvents = {
    'click .updateRoom': function (e, value, row, index) {
        $("#room_id").val(row.room_id);
        // $("#myDialogHeaderLable").html('<i class="fa fa-pencil-square-o" aria-hidden="true"></i> 编辑空闲房间');
        // $("#myDialog").modal("show");
        $.ajax({
            url: "/room/selectRoomfreeById",
            type: "post",
            dataType: "json",
            data: {
                room_id: row.room_id
            },
            success: function (res) {
                console.log(res);
                if(res.errorCode==0){
                    showModal();
                $("#room_id").val(res.object.room_id);
                $("#room_type").val(res.object.room_type);
                $("#room_price").val(res.object.room_price);
                $("#room_state").val(res.object.room_state);
                }
            }
        });
    },

    //该点击事件需要将括号中的参数写全才可以显示出来
    'click .deleteRoom': function (e, value, row, index) {
        room_id = row.room_id;
        room_ids[0]=row.room_id;
        $("#deleteDialogMsg").html("确定要删除" + row.room_id + "这条数据吗？");
        $("#myDeleteModal").modal("show");

        //检验点击删除按钮是否能够请求后台数据
        // $.ajax( {
        //     url: "/room/deleteOneRoomfree",
        //     datatype: "json",
        //     type: "post",
        //     data:{
        //         room_id:row.room_id,
        //     },
        //     success: function(result) {

        // var errorCode = result.errorCode;
        // console.info("返回值"+errorCode);
        // if(errorCode==0){
        //     //alert(JSON.stringify(result))
        //
        // }else{
        //     alert(result.status)
        // }
        // }
        //});

    },

    'click .doCheckIn': function (e, value, row, index) {
        guest_roomid=row.room_id;
    $("#ModalForgotohome").modal("show");
    }
};
//--------------------窗口事件完--------------------------


//添加或编辑模态框的弹出
function showModal() {

    if (flag ) {
        $("#myDialogHeaderLable").text("添加房间");
        $("#updateBtn").text("添加");
        $("#myDialog").modal("show");
    } else {
        $("#myDialogHeaderLable").text("编辑房间");
        $("#updateBtn").text("更新");
        $("#myDialog").modal("show");
    }

}
